/**
 * @file tsk_analy_queue.h
 * @brief tskp库 - 解析队列模块头文件
 * @details
 * 本文件声明了解析队列的数据结构与基本操作接口，适用于嵌入式、实时系统下的任务参数解析缓存。
 * 队列采用静态循环结构，支持高效、无阻塞的数据缓存与处理。
 *
 * 作者：小傲（个人开发）
 * 邮箱：2655640770@qq.com
 * 版权声明：开源公开，欢迎建议与反馈
 * 日期：2025-09-11
 */

#ifndef _TSK_ANALY_QUEUE_H_
#define _TSK_ANALY_QUEUE_H_

#include "tsk_misc.h"

#ifdef _TSK_TSKP_

typedef enum{
    TSK_ANALY_QUEUE_EMPTY,  //队列空
    TSK_ANALY_QUEUE_FULL,   //队列满
    TSK_ANALY_QUEUE_OK      //操作成功
}tsk_analy_queue_enum_t;    //解析队列操作结果

//解析队列
typedef struct 
{
    int front;                              //队头
    int rear;                               //队尾
    int count;                              //队列内数据数
    char data[TSK_ANALY_QUEUE_MAXLEN+1];    //数据区+1是因为char后面有个'\0'
}tsk_analy_Queue;                           //解析队列

void tsk_analy_Queue_Init(tsk_analy_Queue *p);
bool tsk_is_analy_Queue_Empty(tsk_analy_Queue p);
bool tsk_is_analy_Queue_Full(tsk_analy_Queue p);
tsk_analy_queue_enum_t Tsk_analy_Queue_Push(tsk_analy_Queue* p,char data);
tsk_analy_queue_enum_t Tsk_analy_Queue_Pop(tsk_analy_Queue* p,char* temp);

#endif // _TSK_TSKP_

#endif // !_TSK_ANALY_QUEUE_H_
